package com.diaohaiwen.framework.db.filter;//package com.diaohaiwen.framework.database.filter;
//
//import cn.hutool.core.convert.Convert;
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
//import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
//import com.diaohaiwen.framework.common.application.ServerNode;
//import com.diaohaiwen.framework.common.request.RequestUtil;
//import com.diaohaiwen.framework.common.request.RequestVo;
//import com.diaohaiwen.framework.common.logs.SqlLog;
//import org.apache.ibatis.logging.Log;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.util.Date;
//
////@Component
//public class P6SpyLogger implements MessageFormattingStrategy, Log {
//
//    /**
//     * @param connectionId 连接的ID
//     * @param now          完成时间
//     * @param elapsed      用时
//     * @param category     行灯类别
//     * @param prepared     用实际值替换所有绑定变量的SQL语句
//     * @param sql          SQL语句
//     * @param url          数据库URL链接
//     * @return 格式化后的日志语句
//     */
//    @Override
//    public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) {
//        // TODO 发起日志存储SQL
//        Date start = Convert.toDate(now);
//        Date end = new Date(start.getTime() + elapsed);
//        SqlLog log = new SqlLog();
//        log.setRequestTime(Convert.toLocalDateTime(start)).setResponseTime(Convert.toLocalDateTime(end))
//                .setElapsed(Convert.toInt(elapsed)).setNodeNative(RequestUtil.node.getInstanceName())
//                .setNodeCode(RequestUtil.node.getInstanceName())
//                .setRequestId(RequestUtil.getRequestId())
//                .setSqlContent(sql.replaceAll("[\\s]+", " ").trim());
//        System.out.println(log);
//        return StringUtils.isNotBlank(sql) ? " Consume Time：" + elapsed + " ms " + now + "\n Execute SQL：" + log.getSqlContent() + "\n" : "";
//    }
//
//    @Override
//    public boolean isDebugEnabled() {
//        return false;
//    }
//
//    @Override
//    public boolean isTraceEnabled() {
//        return false;
//    }
//
//    @Override
//    public void error(String s, Throwable e) {
//
//    }
//
//    @Override
//    public void error(String s) {
//
//    }
//
//    @Override
//    public void debug(String s) {
//        System.out.println(s);
//    }
//
//    @Override
//    public void trace(String s) {
//        System.out.println(s);
//    }
//
//    @Override
//    public void warn(String s) {
//        System.out.println(s);
//    }
//}
